// 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出两个数，它们的和等于 target。并返回它们的数组下标。

// 思路，哈希表法，遍历数组，用一个map记录元素和索引，判断target减去当前元素在map中是否存在，存在则把下标返回即可
// 时间复杂度：O(n)
// 空间复杂度：O(n)

function twoSum(arr, target) {
    let map = new Map
    for (let i = 0; i < arr.length; i++) {
        if (map.has(target - arr[i])) {
            return [map.get(target - arr[i]), i]
        } else {
            map.set(arr[i], i)
        }
    }
    return [-1, -1]
}

let arr = [1, 2, 3, 4, 5, 6, 7]
console.log(twoSum(arr, 6));